package cn.zzuisa.news.service;

import java.util.List;

import cn.zzuisa.news.entity.IprNewsInfo;
import cn.zzuisa.news.entity.IprNewsItem;
import cn.zzuisa.news.entity.IprNewsType;
import cn.zzuisa.news.entity.Page;
import cn.zzuisa.news.form.IprNewsInfoForm;
import cn.zzuisa.news.form.IprNewsItemForm;
import cn.zzuisa.news.form.NewsEditForm;

public interface IprNewsService {
	/**
	 * 添加类型
	 * 
	 * @param name
	 * @return
	 */
	boolean addType(String name);

	/**
	 * 按模块添加新闻主体
	 * 
	 * @param iprNewsInfoForm
	 * @return
	 */
	boolean addNewsInfo(IprNewsInfoForm iprNewsInfoForm);

	/**
	 * 添加新闻条目
	 * 
	 * @param iprNewsItemForm
	 * @return
	 */
	boolean addNewsItem(IprNewsItemForm iprNewsItemForm);

	/**
	 * 查询所有模块
	 * 
	 * @return
	 */

	List<IprNewsType> listtype();

	/**
	 * 根据 模块搜索新闻
	 * 
	 * @param id
	 * @return
	 */
	IprNewsType findIprNewsTypeById(Integer id);

	/**
	 * 查询所有新闻
	 * 
	 * @return
	 */
	List<IprNewsInfo> listinfoByType(Integer type);

	/**
	 * 根据Id搜索
	 * 
	 * @param id
	 * @return
	 */
	IprNewsInfo findInfoById(Integer id);

	/**
	 * 根据id修改
	 * 
	 * @param id
	 * @return
	 */
	boolean editByFormAndId(IprNewsInfoForm iprNewsInfoForm, Integer id);

	/**
	 * 根据id删除
	 * 
	 * @param id
	 * @return
	 */
	boolean delete(Integer id);

	/**
	 * 查询所有模块（类型）
	 * 
	 * @return
	 */
	List<String> showTypes();

	/**
	 * 查询所有模块Id
	 * 
	 * @return
	 */
	List<String> showTypesId();
	

	/**
	 * 分页查询新闻
	 * @param current
	 * @param size
	 * @param sql
	 * @return
	 */
	Page page(Integer current, Integer size, String sql);

	

	/**
	 * 根据Id查询 新闻
	 * @param id
	 * @return
	 */
	IprNewsItem findById(Integer id);
	

	/**
	 * 修改新闻Item
	 * @param newsEditForm
	 * @return
	 */
	boolean edit(NewsEditForm newsEditForm);
	
	/**
	 * 删除新闻
	 * @param id
	 * @return
	 */
	boolean deleteNewsItem(Integer id);
}
